/**
 * FontAssetManager - 
 *
 * @comment: EmbedFont에서 이용하는 싱글톤 클래스로, FontAsset이 중복 생성되지 않도록 관리한다.
 */
package com.coo.font
{
	public class FontAssetManager
	{
		
		private static var instance: FontAssetManager;
		
		protected var fontObject: Object = new Object();
		
		public function FontAssetManager( singletoneForce: SingletoneForce )
		{
		}
		
		public static function getInstance(): FontAssetManager
		{
			if( !instance )
			{
				instance = new FontAssetManager( new SingletoneForce());
			}
			
			return instance;
		}
		
		/**
		 * url: swf의 위치
		 * linkage: swf 라이브러리의 Font Class
		 * 
		 * url을 object의 속성으로 저장된 FontAsset은 같은 url에 대해서는 하나의 객체만 존재하게 된다.
		 */
		 public function getFontAsset( url: String, linkage: String ): FontAsset
		 {
		 	var asset: FontAsset = null;
		 	
		 	if( fontObject[ url ] == undefined )
		 	{
		 		asset = new FontAsset();
		 		fontObject[ url ] = asset;
		 		
		 		try
		 		{
		 			asset.load( url, linkage );
		 		} catch ( e: Error ) {
		 			trace( this, e );
		 		}
		 		
		 	} else {
		 		asset = fontObject[ url ];
		 	}
		 	
		 	return asset;
		 }
	}
}


class SingletoneForce
{
}